package org.youtu.service;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;

import org.youtu.dao.BaseMapper;



public abstract class BaseService<T> {
	/**
	 * 该方法由子类实现
	 * 
	 * @return 返回baseDao实例
	 */
	public abstract BaseMapper<T> getBaseMapper();
	public boolean save(T entity) {
		boolean flag = false;
//		try {
//			this.getBaseDao().persist(entity);
//			flag = true;
//		} catch (Exception e) {
//			throw new ServiceException(e);
//		}
		return flag;
	}
	public T update(T entity) {
//		try {
//			entity = this.getBaseDao().merge(entity);
//		} catch (Exception e) {
//			throw new ServiceException(e);
//		}
		return entity;
	}
	public void delete(Serializable... entityIds) {
//		try {
//			this.getBaseDao().remove(entityIds);
//		} catch (Exception e) {
//			throw new ServiceException(e);
//		}
	}

	public T get(Serializable id) {
//		try {
//			return this.getBaseDao().find(id);
//		} catch (Exception e) {
//			throw new ServiceException(e);
//		}
		return (T) new Object();
	}

	public boolean isEntityExist(Serializable entityId) {
//		if (null == entityId)
//			return false;
//		try {
//			return this.getBaseDao().isEntityExist(entityId);
//		} catch (Exception e) {
//			throw new ServiceException(e);
//		}
		return false;
	}

//	public QueryResult<T> query(Pager pager) {
//		try {
//			QueryResult<T> qr = null;
//			if (null != pager) {
//				qr = this.getBaseDao()
//						.query(pager.getOffset(), pager.getSize());
//			}
//			return qr;
//		} catch (Exception e) {
//			throw new ServiceException(e);
//		}
//	}

	public List<T> all() {
		try {
			return this.getBaseMapper().list(null);
		} catch (Exception e) {
			throw e;
		}
	}
}
